package org.ch00.test13;

/*
 *
 *@author XCH
 *@date 2025 - 03 - 12 - 16:22
 *
 */
public class Printer {
    // 对象锁（实例级别锁）
    public synchronized void print(String user, String content) {
        System.out.println(user + "：" + content);
    }

    // 使用同步块，锁定当前对象
    public void printWithBlock(String user, String content) {
        synchronized (this) {
            System.out.println(user + "：" + content);
        }
    }

    // 使用类锁（所有对象共享）
    public static synchronized void printWithClassLock(String user, String content) {
        System.out.println(user + "：" + content);
    }

    // 使用同步代码块+类锁
    public void printWithStaticBlock(String user, String content) {
        synchronized (Printer.class) {
            System.out.println(user + "：" + content);
        }
    }
}
